导航菜单
首页 >  一文看懂CARLA中的车辆动力学  > 一文看懂CARLA中的车辆动力学

一文看懂CARLA中的车辆动力学

CARLA车辆的基类是CarlaWheeledVehicle,它继承自PhysXVehicle组件的WheeledVehicle。生成车辆时,这个类的构造函数初始化了VehicleBounds和BaseMovementComponent,前者用于保存和获取车辆的长宽高,后者是继承于UE的MovementComponent的移动组件类。在这个类的BeginPlay函数中,设置了车门以及初始化了轮胎摩擦力。另外类中有一些设置(Setter)和获取(Getter)函数,包括车辆状态、控制信号、BoundingBox、物理(动力学)特性等。

CARLA支持UE PhysX车辆动力学,也支持CarSim车辆动力学,默认为前者。

VehicleControl是一个结构体,包括了控制车辆所需的所有变量,即油门、转向、刹车等。当车辆接收到输入的控制信号时,CARLA车辆移动组件会调用ProcessControl函数来将控制信号应用到车辆上。

       其中第3行GetVehicleMovementComponent函数是PhysXVehicle组件的一个API,用于获取车辆的移动组件:                最后,CARLA车辆的物理特性用VehiclePhysicsControl来表示,其包含了上文中的部分物理特性,另外还有2个关于车辆本身的物理特性:DragCoefficient:空气阻力系数,是衡量车辆在行驶过程中所受空气阻力的一个重要参数。它是由一定特征面积计算得出的单位面积,表示空气对行驶中的车辆形成的一种反向力。空气阻力与速度的平方成正比,因此,高速车对空气阻力的影响非常明显。如果汽车的风阻系数较高,意味着行驶时所受的空气阻力较大,会导致更高的油耗和更低的车辆稳定性。

CenterOfMass:质心位置,对于车辆的控制比较重要。当质心位置在车辆前方时,会降低车辆的转向灵敏度(Understeering),当质心位置在车辆后方时,会增加车辆的转向灵敏度(Oversteering)。因此如果要调整车辆的转向性能,质心时不可忽视的点。

如果要在CARLA中设置车辆的动力学参数,例如下面这样即可:

CARLA Vehicle的apply_physics_control方法 会在被调用的下一帧将参数应用到车辆上。

相关推荐: